<html>
    <head>
        <title>调用视图组件</title>
    </head>
    <body>
        <script>
            /*
                                三、调用视图组件

                                                 1、razor语法调用视图组件

                                                            要使用视图组件，请在视图中调用以下内容：

                                                                        @await Component.InvokeAsync("Name of view component",
                                                                                                    {Anonymous Type Containing Parameters})

                                                            参数将传递给 InvokeAsync 方法。

                                                            本文中开发的 PriorityList 视图组件调用自 Views/ToDo/Index.cshtml 视图文件。 
                                                            
                                                            在以下代码中，使用两个参数调用 InvokeAsync 方法：

                                                                    <div>
                                                                        Maximum Priority: @ViewData["maxPriority"] <br />
                                                                        Is Complete:  @ViewData["isDone"]
                                                                        @await Component.InvokeAsync("PriorityList",
                                                                                        new { 
                                                                                            maxPriority =  ViewData["maxPriority"],
                                                                                            isDone = ViewData["isDone"]  }
                                                                                        )
                                                                    </div>      

                                                2、使用标签助手调用视图组件

                                                            视图组件可以使用标签助手调用：

                                                                    <div>
                                                                        Maxium Priority: @ViewData["maxPriority"] <br />
                                                                        Is Complete:  @ViewData["isDone"]
                                                                        @{
                                                                            int maxPriority = Convert.ToInt32(ViewData["maxPriority"]);
                                                                            bool isDone = Convert.ToBoolean(ViewData["isDone"]);
                                                                        }
                                                                        <vc:priority-list max-priority=maxPriority is-done=isDone>
                                                                        </vc:priority-list>
                                                                    </div>


                                                             标签助手采用 Pascal 大小写格式的类和方法参数将转换为各自相应的短横线格式。 
                                                             
                                                             要使用标签助手调用视图组组件使用 <vc></vc> 元素。 按如下方式指定视图组件：
                                                              
                                                                    <vc:[view-component-name]
                                                                            parameter1="parameter1 value"
                                                                            parameter2="parameter2 value">
                                                                    </vc:[view-component-name]>

                                                            若要使用标签助手调用视图组件，请使用 @addTagHelper 指令注册包含视图组件的程序集。

                                                            例如视图组件位于名为 MyWebApp 的程序集中，请将以下指令添加到 _ViewImports.cshtml 文件：

                                                                    @addTagHelper *, MyWebApp

                                                            本教程中使用的 InvokeAsync 方法：

                                                                    @await Component.InvokeAsync("PriorityList",
                                                                    new { 
                                                                        maxPriority =  ViewData["maxPriority"],
                                                                        isDone = ViewData["isDone"]  }
                                                                    )
                    */
        </script>
    </body>
</html>